package br.unicesumar.dao.impl;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Restrictions;

import br.unicesumar.dao.GenericHibernateDao;
import br.unicesumar.persistence.Cliente;
import br.unicesumar.persistence.Hospedagem;

public class HospedagemDao extends GenericHibernateDao<Hospedagem, Long> {

	DateFormat data = new SimpleDateFormat("dd/MM/yyyy");

	public List<Hospedagem> pesquisarHospedagemPorDataEntrada(String dataEntrada) {
		Criteria criteria = getSession().createCriteria(Hospedagem.class);
		data.setLenient(false);

		try {
			data.parse(dataEntrada);
			criteria.add(Restrictions.like("dataEntrada", dataEntrada,
					MatchMode.ANYWHERE));
		} catch (ParseException ex) {
			// data inválida
		}

		return criteria.list();
	}

	public List<Hospedagem> pesquisarHospedagemPorDataSaida(String dataSaida) {
		Criteria criteria = getSession().createCriteria(Hospedagem.class);
		data.setLenient(false);

		try {
			data.parse(dataSaida);
			criteria.add(Restrictions.like("dataSaida", dataSaida,
					MatchMode.ANYWHERE));
		} catch (ParseException ex) {
			// data inválida
		}

		return criteria.list();
	}

	public List<Hospedagem> pesquisarHospedagemPorCliente(Cliente cliente) {

		Criteria criteria = getSession().createCriteria(Hospedagem.class);
		criteria.add(Restrictions.eq("cliente", cliente));
		return criteria.list();
	}
}
